import logging
import os
import sys
import argparse
import match_service as ms
import uuid_util as uuidUtil

logging.basicConfig(level=logging.INFO)

# 获取当前脚本所在的目录
def get_file_path():
    if getattr(sys, 'frozen', False):
        # 打包后的onefile文件运行时
        file_path = os.path.dirname(sys.executable)
    elif __file__:
        # 正常运行时
        file_path = os.path.dirname(os.path.abspath(__file__))
    else:
        # 其他情况
        file_path = os.getcwd()

    dest = file_path+"/out/result_"+uuidUtil.generate_uuid()+".xlsx"
    # 检查目录是否存在，如果不存在则创建目录
    directory = os.path.dirname(dest)
    if not os.path.exists(directory):
        os.makedirs(directory)

    return dest


# 处理参数
def handleParam():
    parser = argparse.ArgumentParser(description="Python语言的快速字典对码小工具")
    parser.add_argument('-i',"--input_file",required=True, help="输入excel文件目录,即需要对码数据的文件路径,必填")
    parser.add_argument('-o',"--output_file",default=get_file_path(), help="输出excel文件目录,即对码结果数据的文件路径,默认程序所在路径下的out目录")
    parser.add_argument('-zs',"--zl_sheet",default='Sheet1', help="需要对码数据位于所属输入文件的Sheet页名称,默认'Sheet1'")
    parser.add_argument('-ts',"--third_sheet",default='Sheet2', help="原始字典数据位于所属输入文件的Sheet页名称,默认'Sheet2'")
    args = parser.parse_args()
    if not args.input_file.strip():
        logging.error("输入文件地址为空，详细信息请输'-h/--help'查看")
        return
    
    # 匹配服务
    ms.match_excel_data(args.input_file,args.output_file,args.zl_sheet,args.third_sheet)


#主方法
def match():
    try:
        handleParam()

    except Exception as me:
        logging.error(me)


if __name__ == "__main__":
    match()


